V.O. 05/07/2021
Rev 28/04/2022
Visual Studio Code &
Arduino for ESP8266
Installation
Visual Studio Code et Extensions
Test
Live Server pour fichier HTML
( mai 2021)
ARDUINO ESP8266 applications
Advanced Web server
ESP8266 LOLIN VERT (AM2302, BMP085,ADC,Leds,BP) juillet 2021)
* montage Hardware pour ce test
* Software : Visual Studio Code
* Compilation
* Resultats
* Rajout mini OLED SSD1306 128x32 sur bus I2C
* Rajout MCP23017 2 x 8 I/O sur bus I2C
* Test Javascript dans une page html
* MAJ Schema d'interconnections
* Software : derniere version 18-07-2021(en pur ARDUINO 1.8.15 ,sans
VSC)
AsynchroneWeb
Server ESP8266 Lolin JAUNE
(BP commandes et PWM )
* 3 Boutons à glissiere
* Reglage PWM via glissiere..Hardware et Schema
* Software
* Resultat
VISUAL
STUDIO CODE
(for ESP8266)
paths:
C:\Users\Paul\AppData\Local\Arduino15\packages
C:\Users\Paul\Documents\Arduino\libraries
path=C:\Users\Paul\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.0.4-gcc10.3-1757bed
C:\Users\Paul\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2
"C:\\Users\\Paul\\AppData\\Local\\Arduino15\\packages\\esp8266\\tools\\python3\\3.7.2-post1/python3"
-I
C:\Users\Paul\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.2\libraries\ESP8266WiFi
C:\Users\Paul\Documents\Arduino\libraries\Adafruit_Unified_Sensor
esptool.py v3.0
liens
utiles :
IUT NANTES, Eric Peronnin
Débuter avec l'ESP8266 : Créer une page Web pour changer l'état
d'une LED à distance
https://www.youtube.com/watch?v=7Pnvr6iiGXo
Développer sous Visual Studio Code. Le meilleur IDE pour Arduino
(v2)
https://www.youtube.com/c/EricPeronnin/search
https://www.youtube.com/watch?v=iwx_Iotz5PE
Débuter avec l'ESP8266 : Introduction - Configuration de l'IDE
Arduino et de VS Code - 1er programme
https://www.youtube.com/watch?v=o2aD2kwinJM
Préalable:
Desintallation arduino 1.8.14
chargement Arduino 1.8.15 (118Mo)
Installation
:
installation Visual Studio Code
Downloads\VSCodeUserSetup-x64-1.56.2.exe 78Mo
https://www.youtube.com/watch?v=1Z1JCuwXmiQ
Rajout extensions :
(CTRL SHIFT X)
Visual Studio Code | Installation et Astuces Indispensables
https://www.youtube.com/watch?v=CTz1vpJG68E
5 extensions VS Code pratiques
https://www.youtube.com/watch?v=w65jd0Vyj_w
extension : Visual Studio Code
extension for Arduino
ARDUINO 0.4.3
usage de la Palette ( touche F1)
settings :
avec VSC ,
#include <Arduino.h> à mettre en debut de code !
![]() |
|
Palette (via touche F1) | Extensions installées |
extension EMMET :
https://docs.emmet/io/cheat-sheet
terminal CTRL ù
CTL P recherche de fichier
ALT fleche Haut ou Bas deplacer des lignes
ALT MAJ Haut Bas Dupliquer des lignes
extension : LIVE SERVER
affiche un html ouvert dans VSC
Outil performant pour preparer une page HTML et son suivi quasi
temps reel.
Affichage des erreurs, auto completion, documentation ...
Exemple
d'usage de l'extension Live Server avec un fichier html
Thermostat_consigne_2021-0617.html
extension : PRETTIER formatter
CTRL MAJ P palettes de cdes VSC
setting (JSON)
coller
"editor.formatOnSave": true,
"editor.defaultFormatter": "SimonSiefke.prettier-vscode"
Aide
en ligne pour l'usage des fonctions ou librairies
Ex: avec lib DHT11
Folder
Des images ou autres fichiers peuvent etre contenus dans le
Folder
VSC permet aussi de visionner les images ! ou HTML, sans sortir
de l'appli VSC
config VSC :
arduino.json
{
"configuration": "xtal=80,vt=flash,exception=disabled,stacksmash=disabled,ssl=all,mmu=3232,non32xfer=fast,eesz=4M2M,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=921600",
"board": "esp8266:esp8266:d1",
"sketch": "LOLIN_ESP8266_Vert_Webserver_DHT11_BMP085_ADC_2021-0703.ino",
"port": "COM48"
}
lien sur autre fichier (369 lignes !):
c_ccpproperties.json
Terminal YAT (externe) sur liaison USB module Lolin
Permet de tracer le programme, sortir des infos en temps reel ..,
debugger ..
ex: COM48 port virtuel à 115200 bauds.
ATTENTION
:
le port COM48 ne doit pas etre utilisé par un terminal, lors de
la compilation du source *.ino !
sinon blocage compil..:
ATTENTION
:
le
directory .vscode est detruit en sortie de programme .. perte des
chemins librairies ( Path) => erreur de compil .
à verifier si il est bien present en cas de probleme .
exemple de dossier .vsccode
Webserver
avec VSC et ESP8266MOD Lolin NodeMcu V3
Application issue d'un exmple sur le web..
modification via Visual Studio Code , environnement Arduino pour
ESP8266
Message signature ESP822 Lolin NodeMCu V3 .. suite appui sur
BP
Reset
de la carte
le terminal doit etre à 74800 bds pour l'afficher
correctement !
...car passe ensuite à 115200bds pour 'application
Montage Hardware :
BMP085 Bosh
Le BMP085 offre une gamme de
mesure de 300 à 1100 hPa avec une précision absolue
de jusqu'à 0,03 hPa. Il est basé sur la technologie piézo-résistif
pour EMC robustesse,
haute précision et linéarité ainsi que la stabilité à long
terme.
Ce capteur supporte une alimentation en tension compris entre 1,8
et 3,6 Vcc.
Il est conçu pour être directement connecté à un micro-contrôleur
par l'intermédiaire du bus I2C
capteur DHT22=AM2302
Model DHT22
Power supply 3.3-6V DC
Output signal digital signal via single-bus
Sensing element Polymer capacitor
Operating range humidity 0-100%RH; temperature
-40~80Celsius
Accuracy humidity +-2%RH(Max +-5%RH); temperature <+-0.5Celsius
Resolution or sensitivity humidity 0.1%RH; temperature 0.1Celsius
Repeatability humidity +-1%RH; temperature +-0.2Celsius
Humidity hysteresis +-0.3%RH
Long-term Stability +-0.5%RH/year
Sensing period Average: 2s
Interchangeability fully interchangeable
Analog input :
analogReference(DEFAULT);
// test avec potar 470 ohms sur alim 3,3V -> mesurée 2,96V (chute
un peu car pot=470 ohms seulement )
// pot. mini 40 , pot. maxi 1024 , et 1006 pour input=2.90V
// avec LM35DZ 0.262V -> 90 points
// l'entree A0 est de 1,0V mais incorpore un pont divisuer par 3
=> echelle 0 à 3,3V
Hardware Declarations
ATTENTION : le
reperage des pins sur le module Lolin ne coorespond pas au repere
GPIO !
#define
DHTTYPE DHT22 ; // DHT type (DHT11, DHT22)
GPIO Pin |
Lolin module |
|
#define SCL 5 |
D1 |
<--> SCL BMP085 |
#define SDA 4 |
D2 |
<--> SDA BMP085 |
#define LED_Bleue 2 |
D4 |
- >led bleue du module Lolin ( pulled up) |
int DHTPIN = 14 |
D5 |
<- Broche du capteur AM2302 |
#define LED_Verte 12 |
D6 |
-> led verte externe au module Lolin ( pulled down) |
#define BP1 13 |
D7 |
<- BP 1 (pulled up) |
Analog Pin |
A0 |
<-- Pin 2 du LM35DZ gamme 0-3300mV 0-330°C |
PWM |
D3 | sortie sur GPIO 0 |
SOFTWARE #1 (environnement VSC)
Librairies
:
#include
"Arduino.h"
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
#include <DHTesp.h>
#include <Adafruit_BMP085.h>
Application
:
"page" contient le fichier html.
si le server rencontre un argument "LED_B" ou "LED_V"
la fonction HandleSubmit permet de faire les actions demandes sur
les sorties LED..
ensuite, La "page" réactualisée est renvoyée au
serveur
La tache de fond Loop fait :
les acquisitions (via protocole specifique) du capteur AM2302
Humidite et temperature
l'acquisition (via I2C) de la mesure de Pression BMP085
La mesure Analogique sur A0 .. capteur de temperature LM35DZ
la lecture de l'etat du BP1
L'incrementation du "Compteur"
Envoi de toutes ces info sur un terminal virtuel COM48 via la
liaison USB au PC
* Liaison USB qui alimente aussi le module ESP8266 Lolin via le +5V
USB !
nota: le module Lolin genere le +3,3V local utilisé par les
periferiques.
La led bleue est sur le module Lolin.
La mesure moyenne Ana ( cumulée sur 8 samples) donne la valeur
exprimée en Degres C
LOLIN_ESP8266_Vert_Webserver_DHT11_BMP085_ADC_2021-0703x.ino
mon serveur DNS (freebox) couvre la plage 192.168.0.100 .. à 112
j'ai en permance la possibilité de connecter la "page"
sur ..110, 111,112 ou
autre adresse IP plus basse si je n'ai que mon PC principal actif
J'ai aussi autorisé le module Lolin_Vert coté parrefeu NORTON
...
..Resultat: sur terminal YAT
ATTENTION
!
le port COM48 ne doit pas etre utilisé par un terminal, lors de
la compilation du source *.ino !
sinon blocage compil..:
error :
serial.serialutil.SerialException:
could not open port 'COM48': PermissionError(13, 'Acc?s refus?.',
None, 5)
des que la compil est terminée,on peut reactiver le terminal
extern YAT
.......
Connected to
ON_AIR2020
IP address: 192.168.0.103
HTTP server started
Ana0=85 Compteur= 00000 Pression : 984 Temperat. nan Humidite nan
BP= OFF
Ana0=85 Compteur= 00000 Pression : 984 Temperat. 26.40 Humidite
77.2 BP= OFF
Ana0=85 Compteur= 00000 Pression : 984 Temperat. 25.60 Humidite
77.9 BP= OFF
Ana0=85 Compteur= 00000 Pression : 984 Temperat. 25.60 Humidite
78.0 BP= OFF
Ana0=84 Compteur= 00001 Pression : 984 Temperat. nan Humidite nan
BP= OFF
Ana0=84 Compteur= 00001 Pression : 984 Temperat. 26.40 Humidite
75.4 BP= OFF
Ana0=90 Compteur= 00001 Pression : 984 Temperat. 25.70 Humidite
76.8 BP= OFF
LM35DZ=27.47 deg C
Compteur= 00002 Pression : 984 Temperat. 25.60 Humidite 76.8 BP=
OFF
Ana0=90 Compteur= 00002 Pression : 984 Temperat. 25.60 Humidite
75.2 BP= OFF
Ana0=85 Compteur= 00003 Pression : 984 Temperat. 25.60 Humidite
76.1 BP= OFF
Ana0=90 Compteur= 00003 Pression : 984 Temperat. 25.60 Humidite
76.6 BP= OFF
Ana0=90 Compteur= 00003 Pression : 984 Temperat. 25.60 Humidite
76.1 BP= OFF
Ana0=84 Compteur= 00004 Pression : 984 Temperat. 25.80 Humidite
75.8 BP= OFF
Ana0=90 Compteur= 00004 Pression : 984 Temperat. 25.70 Humidite
76.6 BP= OFF
Ana0=90 Compteur= 00004 Pression : 984 Temperat. 25.70 Humidite
76.4 BP= OFF
LM35DZ=28.36 deg C
...Autre
Probleme: avec mon PC Acer portable : PC adresse Wifi ..103
spoliée par Wifi Lolin
donc modif du code , pour imposer une adresse IP fixe : 192.168.0.110
coté Lolin
Essai d'inclure du Javascript :
String getJavas(){
String Javas = "<script type=\"text/javascript\"/>";
Javas += " var consigneV = 0";
Javas += " var target = new XMLHttpRequest()";
Javas += " function MoinsVite(){";
Javas += " if (consigneV > 0) consigneV = consigneV - 1";
Javas += " document.getElementById('ConsigneID').innerHTML = consigneV";
Javas += " target.open('POST', '/MoinsVite', true) }";
Javas += " function PlusVite() {";
Javas += " consigneV = consigneV + 1";
Javas += " document.getElementById('ConsigneID').innerHTML = consigneV";
Javas += " target.open('POST', '/PlusVite', true) }";
Javas += " </script> <br> ";
return Javas;
};
page + = getJavas();
--------------- COMPILATION
----------------------------------------------
[Starting] Uploading sketch 'LOLIN_ESP8266_Vert_Webserver_DHT11_BMP085_ADC_2021-0706.ino'
Using core 'esp8266' from platform in folder: C:\Users\Paul\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.0
Detecting libraries used...
"C:\\Users\\Paul\\AppData\\Local\\Arduino15\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\3.0.0-newlib4.0.0-gnu23-48f7b08/bin/xtensa-lx106-elf-g++"
-D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-IC:\\Users\\Paul\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.0/tools/sdk/include"
"-IC:\\Users\\Paul\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.0/tools/sdk/lwip2/include"
"-IC:\\Users\\Paul\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.0/tools/sdk/libc/xtensa-lx106-elf/include"
"-IC:\\Users\\Paul\\AppData\\Local\\Temp\\arduino_build_159733/core"
-c -w -Os -g -free -fipa-pta -mlongcalls -mtext-section-literals
-fno-rtti -falign-functions=4 -std=gnu++17 -ffunction-sections -fdata-sections
-fno-exceptions -DMMU_IRAM_SIZE=0x8000 -DMMU_ICACHE_SIZE=0x8000 -w
-x c++ -E -CC -DNONOSDK22x_190703=1 -DF_CPU=80000000L -DLWIP_OPEN_SRC
-DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10814 -DARDUINO_ESP8266_WEMOS_D1R1
-DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_WEMOS_D1R1\""
-DFLASHMODE_DIO -DESP8266 "-IC:\\Users\\Paul\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.0\\cores\\esp8266"
"-IC:\\Users\\Paul\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.0\\variants\\d1"
"C:\\Users\\Paul\\AppData\\Local\\Temp\\arduino_build_159733\\sketch\\LOLIN_ESP8266_Vert_Webserver_DHT11_BMP085_ADC_2021-0706.ino.cpp"
-o nul
Alternatives for WiFiClient.h: [ESP8266WiFi@1.0 WiFi@1.2.7]
ResolveLibrary(WiFiClient.h)
-> candidates: [ESP8266WiFi@1.0 WiFi@1.2.7]
-> candidates: [ESP8266WebServer@1.0]
-> candidates: [Wire@1.0]
-> candidates: [DHT_sensor_library_for_ESPx@1.17]
-> candidates: [Adafruit_Unified_Sensor@1.1.3]
-> candidates: [Adafruit_BMP085_Library@1.2.1]
-> candidates: [Adafruit_BusIO@1.7.5]
-> candidates: [SPI@1.0]
Compiling sketch..
Compiling libraries...
Compiling library "ESP8266WiFi"
Compiling library "ESP8266WebServer"
Compiling library "Wire"
Compiling library "DHT_sensor_library_for_ESPx"
Compiling library "Adafruit_Unified_Sensor"
Compiling library "Adafruit_BMP085_Library"
Compiling library "Adafruit_BusIO"
Compiling library "SPI"
Compiling core...
Linking everything together...
Creating BIN file "C:\Users\Paul\AppData\Local\Temp\arduino_build_159733/LOLIN_ESP8266_Vert_Webserver_DHT11_BMP085_ADC_2021-0706.ino.bin"
using "C:\Users\Paul\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.0/bootloaders/eboot/eboot.elf"
and "C:\Users\Paul\AppData\Local\Temp\arduino_build_159733/LOLIN_ESP8266_Vert_Webserver_DHT11_BMP085_ADC_2021-0706.ino.elf"
Executable segment sizes:
ICACHE : 32768 - flash instruction cache
IROM : 277568 - code in flash (default or ICACHE_FLASH_ATTR)
IRAM : 28089 / 32768 - code in IRAM (IRAM_ATTR, ISRs...)
DATA : 1520 ) - initialized variables (global, static) in RAM/HEAP
RODATA : 2660 ) / 81920 - constants (global, static) in RAM/HEAP
BSS : 26696 ) - zeroed variables (global, static) in RAM/HEAP
Multiple libraries were found for "WiFiClient.h"
Used: C:\Users\Paul\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.0\libraries\ESP8266WiFi
Not used: C:\Program Files (x86)\Arduino\libraries\WiFi
Sketch uses 309837 bytes (29%) of program storage space. Maximum
is 1044464 bytes.
Global variables use 30876 bytes (37%) of dynamic memory, leaving
51044 bytes for local variables. Maximum is 81920 bytes.
Terminal
YAT doit etre déconnecté !
Uploading...
C:\Users\Paul\AppData\Local\Arduino15\packages\esp8266\tools\python3\3.7.2-post1/python3
C:\Users\Paul\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.0/tools/upload.py
--chip esp8266 --port COM48 --baud 921600 --before default_reset
--after hard_reset write_flash 0x0 C:\Users\Paul\AppData\Local\Temp\arduino_build_159733/LOLIN_ESP8266_Vert_Webserver_DHT11_BMP085_ADC_2021-0706.ino.bin
esptool.py v3.0
Serial port COM48
Connecting...
.
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: b4:e6:2d:0a:aa:aa
Uploading stub..
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 313984 bytes to 227281...
Writing at 0x00000000... (7 %)
Writing at 0x00004000... (14 %)
Writing at 0x00008000... (21 %)
Writing at 0x0000c000... (28 %)
Writing at 0x00010000... (35 %)
Writing at 0x00014000... (42 %)
Writing at 0x00018000... (50 %)
Writing at 0x0001c000... (57 %)
Writing at 0x00020000... (64 %)
Writing at 0x00024000... (71 %)
Writing at 0x00028000... (78 %)
Writing at 0x0002c000... (85 %)
Writing at 0x00030000... (92 %)
Writing at 0x00034000... (100 %)
Wrote 313984 bytes (227281 compressed) at 0x00000000 in 5.2
seconds (effective 486.9 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin..
en fin de compilation avec VSC , message :
[Done] Uploading sketch 'LOLIN_ESP8266_Vert_Webserver_DHT11_BMP085_ADC_2021-0706.ino'
--------------- RESULTAT ------------------
........
Connected to ON_AIR2020
IP address: 192.168.0.110
Javas :
<script type="text/javascript"/> var consigneV =
0 var target = new XMLHttpRequest() function MoinsVite(){ if (consigneV
> 0) consigneV = consigneV - 1 document.getElementById('ConsigneID').innerHTML
= consigneV target.open('POST', '/MoinsVite', true) } function
PlusVite() { consigneV = consigneV + 1 document.getElementById('ConsigneID').innerHTML
= consigneV target.open('POST', '/PlusVite', true) } </script>
<br>
HTTP server started
Ana0=85 Compteur= 00000 Pression : 984 Temperat. 26.60 Humidite
62.7 BP= OFF
Ana0=85 Compteur= 00000 Pression : 984 Temperat. 26.60 Humidite
62.8 BP= OFF
Ana0=85 Compteur= 00000 Pression : 984 Temperat. 26.60 Humidite
62.7 BP= OFF
Ana0=84 Compteur= 00000 Pression : 984 Temperat. 26.60 Humidite
62.7 BP= OFF
Ana0=90 Compteur= 00000 Pression : 984 Temperat. 26.60 Humidite
62.7 BP= OFF
Ana0=84 Compteur= 00001 Pression : 984 Temperat. 26.60 Humidite
62.8 BP= OFF
Ana0=85 Compteur= 00001 Pression : 984 Temperat. 26.60 Humidite
62.9 BP= OFF
LM35DZ=27.71 deg C
(19:13:44.963) Compteur= 00087 Pression : 983 Temperat. 26.30
Humidite 62.0 BP= OFF
(19:13:47.443) Ana0=92 Compteur= 00087 Pression : 983 Temperat.
26.30 Humidite 62.0 BP= OFF
(19:13:49.996) Ana0=91 Compteur= 00087 Pression : 983 Temperat.
26.40 Humidite 62.1 BP= OFF
(19:13:52.562) Ana0=85 Compteur= 00088 Pression : 983 Temperat.
26.80 Humidite 62.5 BP= OFF
(19:13:55.093) Ana0=92 Compteur= 00088 Pression : 983 Temperat.
26.30 Humidite 62.1 BP= OFF
(19:13:57.652) Ana0=92 Compteur= 00088 Pression : 983 Temperat.
26.80 Humidite 62.5 BP= OFF
(19:14:00.217) Ana0=86 Compteur= 00089 Pression : 983 Temperat.
26.00 Humidite 61.8 BP= OFF
(19:14:02.760) Ana0=92 Compteur= 00089 Pression : 983 Temperat.
26.80 Humidite 62.5 BP= OFF
(19:14:05.323) LM35DZ=28.84 deg C
(19:14:05.371) Compteur= 00090 Pression : 983 Temperat. 26.70
Humidite 62.3 BP= OFF
57.652-55.093= 2.56 secondes
affichage page web
version du 10/07:
LOLIN_ESP8266_Vert_Webserver_DHT11_BMP085_ADC_2021-0710.ino
Rajout mini LCD OLED SSD1306 128x32 (i2C)
et MC23017 expander 16
Entrees sorties (I2C)
Profitons de ce bus I2C pour rajouter un LCD (infos locales )
et augmenter le nombres d'entrées (+8) et de sorties (+8). acr
trop limitées sur ce modele ESP8266 2x15 pins
Test
preliminaire des fonctionalités offerte par la librairie Arduino
SSD1306
Le LCD est simplement raccordé sur le bus I2C existant,
avec adresse device 0x3C.
Aucun probleme .. le logo Adafruit est affiché par défaut au
moment de l'init .
Tous les test sont effectuées ..OK...
résumé ci dessous :
Display pixel 10,10
lignes
rectangles
Rectangles pleins
Cercles
Cercles pleins
Rectangle vides arrondis
Rectangle pleins arrondis
Triangles
Triangles Pleins
characteres simples
characteres styles
Scrolling text
petite image Bitmap
inverse image
re-inverse image
animation LOGO
x: 75 y: -16 dy: 2
x: -9 y: -16 dy: 2
x: 56 y: -16 dy: 3
J' ai rajouté l'affichage d' un BMP 128x32 : Pauljujo.
Fichier defini en memoire Programme.
_ESP8266_Lolin_Vert_Test_Complet_Mini_OLED_128x32_I2C_2021-0715.ino
Rajout du MCP23017 (I2C)
! nouveau schema global
à gauche du schema , la page web correspondante !
Le LCD OLED , 4 lignes de 18 chars , affiche les principales
données acquises :
Le capteur de Pression,l'ecran OLED et le MCP23017 sont sur le
bus I2C
Le capteur DHT11 est géré par un protocole specifique ,genre
SPI
Le capteur de temperature LM35DZ est relié sur la seule entre
ANA A0 de l'ESP8266 (gamme 0 à 3,3V)
Le MCP23017 supporte 8 entrees et 8 sorties
La page web contient la trame fixe et les donnees reactualisées.
Possibilité de commander les 2 leds sur le Module ESP8266
La Led Bleue est celle installée sur le module , la led verte
est externe.
Un Bouton poussoir est relié à une entree ESP8266
Rajout d'un Icone 32x32 via SVG et compactage de l'image au
format Base64 :
String
getMyLogo()
{
String MyLogo= "<br> rajout (mylogo_32x32.ico) image
en format base64 <br><br>";
MyLogo +="<img alt=\"no image\" src=\"data:image/x-icon;base64,AAABAAEAICAAAAEACACoCAAAFgAAAC...etc
.....>";
MyLogo +="<br><br>";
return MyLogo;
}
Injection
javascript,
String getJavas()
{
String Javas = "<script type=\"text/javascript\">";
Javas += " var Consigne = 0";
Javas += " var target = new XMLHttpRequest()";
Javas += " function MoinsVite(){";
Javas += " if (Consigne > 0) Consigne = Consigne - 1";
Javas += " document.getElementById('ConsigneID').innerHTML =
Consigne";
Javas += " target.open('POST', '/MoinsVite', true) }";
Javas += " function PlusVite() {";
Javas += " Consigne = Consigne + 1";
Javas += " document.getElementById('ConsigneID').innerHTML =
Consigne";
Javas += " target.open('POST', '/PlusVite', true) }";
Javas += " </script>";
return Javas;
};
à
suivre
* Commande des 8 entrés du MCP
* Affichage distinct des 8 sorties MCP ( actuellement info PORTB
seulement en Hexa ou Binaire)
* Passage en Async Web server !
Test
séparé du codage javascript avec cette page html :
attention à
respecter les ";" et la case des lettres.
le code actuel (18/07/2021)
_ESP8266_Lolin_Vert_DHT11_BMP085_ADC_OLED_MCP23017_2021-0718.ino
Consigne_Vitesse_javascript_2021-0718.html
* test du javascript "consigne"
A
suivre ..
recuperer cette info pour sortie PWM ESP8266
AsynchroneWeb Server ESP8266
Lolin JAUNE (BP commandes
et PWM )
Boutons à glissiere :
Software:
page Html simple pour test javascipt :
3_boutons_smooth_slider.html
Reglage sortie PWM
Hardware :
Sortie 2 correspondant à pin D4 Lolin -> 750 ohms -> Gate
MOSFET canal N IRFZ14N
Pin Gnd Module ESP Lolin ---> 0V alim 12VDC
Ampoule 12V 5W entre sortie DRAIN Mosfet et + Alim 12V DC
Rappel hardware :
===================================================================
// Hardware raccordements
// ESP ..GPIO.....BMP085 ....OLED Display ......AM2302-Humidity
....Temp sensor
// +3V-------------- 1 VCC ------- 2 OLED SSD1306 ----1 Humidity
Vcc------1 LM35DZ Vcc
// Gnd ------------- 2 Gnd --------1 OLED SSD1306 ----4 Humidity
Gnd------3 LM35DZ Gnd
//
----------------------------------------------------------------------3
EOC 3 N.C.
//-----------------------------------------------------------------------4
XCLCK
// D1 --- 5 --I2C--5 SCL ------- 3 OLED SSD1306
// D2 --- 4 --I2C--6 SDA--- --- 4 OLED SSD1306
// D5 <- 14
------------------------------------------------------- 2
Humidity Data
// D3 --- 0 --------------------------------> PWM Output
// D4 --- 2 ----1K----> Led Bleue---Gnd
// D6 -- 12 ----1K----> Led Verte---Gnd
// D8 -- 15 ----1k----> Led Rouge---Gnd
// D7 <- 13 - ----------BP1----750----Gnd
// A0 <---Analog---------------------------------------------------------------------------2
LM35DZ outpn pin D4
=============================================================
Software:
apres mise à jour version VSC et Arduino :
bien vérfier
tous les paths ... aruino pack,
arduino librairies, compilateur ..etc ..
car intellisense
ne sait pas faire tout seul !
modif manuelle des paths :
voir exemple : c_cpp_properties.json_OK_20220421.txt .......... attention lignes de >180 caracteres !
D:\_ESP8266MOD_Lolin_2x15_Jaune\ESP8266_Jaune_Button_Slider_PWM_2022-0422_VCS\.vscode
.vscode-2022-0422.zip
arduino.json
c_cpp_properties.json
launch.json
Probleme : impossible d'utilise N majuscule ( via Shif N)
Modif Keyboard shortcut :
Probleme :sur la valeur par defaut de la carte selectionnée
dossier de Pré-compilation :
"d:\\_ESP8266MOD_Lolin_2x15_Jaune\\ESP8266_Lolin\\core",
Compilation
Log de la compilation et
chargement : Compilation_ESP8266_Jaune_Buttons_Slider_PWM_2022-0422.ino.log
Nota:
*adress IP fixée à 192.168.0.110
*(necessite de modifier le SSID et la clé WEP !)
Chargement
du programme (via liaison USB de la carte)
write_flash
0x0 d:\_ESP8266MOD_Lolin_2x15_Jaune\ESP8266_Lolin/ESP8266_Jaune_Buttons_Slider_PWM_2022-0422.ino.bin
esptool.py v3.0
Serial
port COM6
Connecting...
.
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 5c:cf:7f:78:71:eb
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0240
Compressed 400640 bytes to 249753...
Writing at 0x00000000... (6 %)
Writing at 0x00004000... (12 %)
Writing at 0x00008000... (18 %)
Writing at 0x0000c000... (25 %)
Writing at 0x00010000... (31 %)
Writing at 0x00014000... (37 %)
Writing at 0x00018000... (43 %)
Writing at 0x0001c000... (50 %)
Writing at 0x00020000... (56 %)
Writing at 0x00024000... (62 %)
Writing at 0x00028000... (68 %)
Writing at 0x0002c000... (75 %)
Writing at 0x00030000... (81 %)
Writing at 0x00034000... (87 %)
Writing at 0x00038000... (93 %)
Writing at 0x0003c000... (100 %)
Wrote 400640 bytes (249753 compressed) at 0x00000000 in 5.8 seconds (effective 557.1 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
IntelliSense configuration already up to date. To manually
rebuild your IntelliSense configuration run "Ctrl+Alt+I"
[Done] Uploading sketch 'ESP8266_Jaune_Buttons_Slider_PWM_2022-0422.ino'
dossier VCS : ESP8266_Jaune_Button_Slider_PWM_2022-0424_VCS.zip
Source : ESP8266_Jaune_Buttons_Slider_PWM_2022-04.ino
Modif AnalogWriteRange -> 1023 ( est par
defaut à 255
Modif Frequence PWM ->
2000 Hz au lieu de 1000Hz
Resultat :
24/04/2022
A
suivre
Rajout DHT11,OLED LCD,BMP 085,LM35DZ,MCP23017